//
//  EZTallyArray.h
//  zhaitu
//
//  Created by ellzu on 13-8-3.
//  Copyright (c) 2013年 ellzu. All rights reserved.
//

#ifndef __zhaitu__EZTallyArray__
#define __zhaitu__EZTallyArray__

#include <iostream>
#include "EZTallyObject.h"
#include <vector>

namespace EZTally {
    
    class EZTallyArray : public EZTallyObject
    {
    private:
        std::vector<EZTallyObject*> objects;
        void CopyOther(const EZTallyArray &other);
    protected:
        
    public:
        EZTallyArray();
        EZTallyArray(const EZTallyArray &other);
        EZTallyArray &operator=(const EZTallyArray &other);
        ~EZTallyArray();
        
        void AddObject(EZTallyObject* obj);
        void RemoveObject(EZTallyObject* obj);
        void RemoveObjectAtIndex(int index);
        void Clear();
        EZTallyObject* ObjectAtIndex(int index);
        int IndexOfObject(EZTallyObject* obj);
        int Count();
        EZTallyObject* LastObject();
    };
    
}






#endif /* defined(__zhaitu__EZTallyArray__) */
